<?php
	header("Content-type:text/html;charset=utf-8");


	/**
	**
	**
	**/
	function getUid($token)
	{
		$uid = Db('users')->where('token',$token)->value('id');
		return $uid;
	}
	/*通过token获取头像
	*/
	function getIconUrl($uid)
	{
		//读取数据库
		// $userId = Db('users')->where('token',$token)->value('id');
		$iid = Db('userinfo') ->where('uid',$uid)->value('iid');
		$userInfo = Db('icon')->where('id',$iid)->value('url');
		return $userInfo;
	}
	/*通过token获取nickname
	*/
	function getNickname($uid)
	{
		// $userId = Db('users')->where('token',$token)->value('id');
		$nickname = Db('userinfo') ->where('uid',$uid)->value('nickname');
		return $nickname;
	}
	/**
	** 获取APP_SECRET的值
	**/
	function getSecret()
	{
		$appSecret = Config('APP_SECRET');
		return $appSecret;
	}
    /**
	 * 根据配置项获取对应的key和secret
	 * @return array key和secret
	 */
	function get_rong_key_secret()
	{
	    $key=Config('APP_KEY');
	    $secret=Config('APP_SECRET');
	    $data=array(
	        'key'=>$key,
	        'secret'=>$secret
	        );
	    return $data;
	}
	/**
	 * 引入外部类并实例化类
	 */
	function get_rong_cloud()
	{
		vendor('rongyun.rongcloud');
		// 获取key和secret
	    $key_secret=get_rong_key_secret();
	    // 实例化融云
	    $rong_cloud=new \RongCloud($key_secret['key'],$key_secret['secret']);

	    return $rong_cloud;
	}
	/**
	 * 获取融云token
	 * @param  integer $uid 用户id
	 * @return integer      token
	 */
	function get_rongcloud_token($uid)
	{
	    // 从数据库中获取token
	    $oauthUser=Db('oauth_user')->where('uid',$uid)->find();
	    // var_dump($oauthUser);die();
	    // 如果有token就返回

	    if(!empty($oauthUser)) {
	        return $oauthUser['access_token'];
	    }
	    // 获取用户昵称和头像
	    // $user=Db('userinfo')->where('uid',$uid)->field('nickname,iid')->find();
        $iconUrl = getIconUrl($uid);
        $nickName = getNickname($uid);
        // var_dump($nickName);
        // var_dump($iconUrl);die();
	    // 用户不存在
	    if (empty($iconUrl && $nickName)) {
	        return false;
	    }
	    // 获取头像url格式
	    // $pic = get_url($user['image']);

	    // 实例化融云
	    $rong_cloud=get_rong_cloud();
	    // 获取token
        $nickName = getNickname($uid);
	    $token_json=$rong_cloud->user()->getToken($uid,$nickName,$iconUrl);
	    $token_array=json_decode($token_json,true);
	    // 获取token失败
	    if ($token_array['code']!=200) {
	        return false;
	    }
	    $token=$token_array['token'];
	    $data=array(
	        'uid'=>$uid,
	        'nickname'=>$nickName,
	        'pic'=>$iconUrl,
	        'access_token'=>$token,
	        'create_time' => time(),
	        'type' => 1
	        );
	    // 插入数据库
	    $result=Db('oauth_user')->insert($data);
	    if ($result > 0) {
	        return $token;
	    }else{
	        return false;
	    }
	}

	/**
	 * 更新融云头像
	 * @param  integer $uid 用户id
	 * @return boolear      操作是否成功
	 */
	function refresh_rongcloud_token($uid)
	{
	    // 获取用户昵称和头像
	    $user=Db('users')->where('id',$uid)->field('username,image')->find();
	    // 用户不存在
	    if (empty($user)) {
	        return false;
	    }
	    $pic = get_url($user['image']);
	    // 实例化融云
	    $rong_cloud=get_rong_cloud();
	    // 更新融云用户头像
	    $result_json=$rong_cloud->user()->userRefresh($uid,$user_data['username'],$pic);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 获取头像的url
	 */
	function get_url($pic)
	{
		if($pic){
			$picPath = Config('PIC_PATH');
		    $pic = $picPath.$pic;
		    return $pic;
		}else{
			return '';
		}
		
	}
	/**
	**
	**/
	function check_user_online($uid)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	     $result_json=$rong_cloud->user()->checkOnline($uid);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	//拼接数组
	        return $result_array['status'];
	    }else{
	        return '';
	    }
	}
	/**
	 * 创建聊天室
	 * $id 聊天室id   $name 聊天室的名字
	 * @return 状态码
	 */
	function cerate_chatroom($id,$name)
	{
	    // 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //聊天室信息
	    $chatRoomInfo = array(
    		$id => $name,
    		);
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->create($chatRoomInfo);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	//拼接数组
	        return $chatRoomInfo;
	    }else{
	        return '';
	    }
	}
	/**
	 * 销毁聊天室
	 * $id 聊天室id   
	 * @return 状态码
	 */
	function destroy_chatroom($id)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //聊天室信息
	    $chatRoomInfo = array(
    		'chatroomId' => $id
    		);
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->destroy($chatRoomInfo);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}

	/**
	 * 查询聊天室信息
	 * $id 聊天室id 
	 * @return 
	 */
	function query_chatroom($id)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //聊天室信息  	
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->query($id);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return $result_array['chatRooms'];
	    }else{
	        return '';
	    }
	}

	/**
	 * 加入聊天室
	 * $id 聊天室id  $uid 用户id
	 * @return 
	 */
	function join_chatroom($uid,$id)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->join($uid,$id);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 查询聊天室的成员
	 * $chatroomId 聊天室id
	 * 
	 */
	function query_chatroom_users($chatroomId)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->queryUser($chatroomId, '500', '2');
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	$result = array(
	    		'total' => $result_array['total'],
	    		'users' => $result_array['users']
	    		);
	        return $result;
	    }else{
	        return '';
	    }
	}
	/**
	 * 聊天室禁言用户
	 */
	function add_chatroom_gag_user($userId,$chatroomId,$minute)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->addGagUser($userId, $chatroomId, $minute);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}

	/**
	 * 聊天室解除禁言
	 */
	function chatroom_gag_rollback($userId,$chatroomId)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->rollbackGagUser($userId,$chatroomId);;
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 添加敏感词汇
	 */
	function add_wordfilter($word)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->wordfilter()->add($word);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 移除
	 */
	function delete_wordfilter($word)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->wordfilter()->delete($word);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 移除
	 */
	function get_wordfilter()
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->wordfilter()->getList();
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	        return $result_array['words'];
	    }else{
	        return false;
	    }
	}
	/**
	 * 发送消息
	 */
	function publish_chatroom($fromUserId,$toChatroomId,$objectName,$content)
	{
		$message = array(
			'content' => $content
			);
		$message = json_encode($message);
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->message()->publishChatroom($fromUserId,$toChatroomId,$objectName,$message);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 添加消息优先级
	 */
	function add_priority($priority)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->addPriority($priority);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	return true;
	    }else{
	        return false;
	    }
	}
	/**
	 * 移除聊天室优先级
	 */
	function remove_priority($priority)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->removePriority($priority);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	return true;
	    }else{
	        return false;
	    }
	}
	/**
	 *查询聊天室优先级
	 */
	function query_priority($priority)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->queryPriority($priority);
	    $result_array=json_decode($result_json,true);
	    if ($result_array['code']==200) {
	    	return $result_array['objectNames'];
	    }else{
	        return false;
	    }
	}
	/**
	 * 添加聊天室白名单成员 方法
	 */
	function add_chatroom_whitelist($chatroomId,$userId)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->addWhiteListUser($chatroomId,$userId);
	    $result_array=json_decode($result_json,true);
	    if($result_array['code']==200) {
	    	return true;
	    }else{
	        return false;
	    }
	}


	/**
	 * 查询聊天室白名单成员 方法
	 */
	function query_chatroom_whitelist($chatroomId)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->queryWhiteListUser($chatroomId);

	    $result_array=json_decode($result_json,true);
	    if($result_array['code']==200) {
	    	$users = $result_array['users'];
	    	return $users;
	    }else{
	        return false;
	    }
	}
	/**
	 * del聊天室白名单成员 方法
	 */
	function del_chatroom_whitelist($chatroomId,$userId)
	{
		// 实例化融云
	    $rong_cloud=get_rong_cloud();
	    //创建聊天室
	    $result_json=$rong_cloud->chatroom()->delWhiteListUser($chatroomId, $userId);
	    $result_array=json_decode($result_json,true);
	    if($result_array['code']==200){	
	    	return true;
	    }else{
	        return false;
	    }
	}